Abstract
L’obiettivo su cui si è basato lo studio è quello di ricercare una correlazione tra i risultati della Scuderia Ferrari nel campionato mondiale di Formula 1 nella stagione 2020 e il sentiment generale della community, riguardo al team e i piloti che lo rappresentano. Sono stati scaricati i tweets riguardo i seguenti topic: vettel, leclerc, ferrari, essereFerrari per ogni Gran Premio. Gli stessi sono prima stati preprocessati con tecniche di Text Mining e successivamente valutati attraverso diversi algoritmi di Sentiment Analysis. Infine, tramite le menzioni dei tweet, è stata costruita la rete sociale degli utenti per analizzare la community dei Tifosi.
Introduzione
Dopo anni di grandi successi nel mondo della Formula 1, nell’ultimo periodo la casa di Maranello ha subito un brusco rallentamento in termini di vittorie, sia per demeriti propri, sia per l’ascesa di nuove realtà. L’acquisizione del pilota Charles Leclerc nell’anno 2019, ha portato un grande spiraglio di luce, risvegliando l’entusiasmo dei Tifosi. Poiché la stagione 2020 non si è rivelata all’altezza delle aspettative, è stato nostro interesse monitorare l’opinione dei fan lungo il corso dell’intero campionato automobilistico.
Domande di ricerca
Sono state identificate le seguenti domande di ricerca:
- Esiste una correlazione tra i risultati ottenuti in pista e l’umore dei Tifosi?
- Come sono percepiti i due piloti da parte della Community? E la scuderia in generale?
- Quali sono i personaggi più influenti all’interno del panorama Ferrari1 su Twitter?
- Quali strategie potrebbe adottare il Brand per migliorare la comunicazione online?
Costruzione del dataset
I dati provengono da due fonti diverse: Wikipedia, necessaria per ottenere i risultati della squadra nelle varie competizioni, e Twitter2, da cui sono stati estrapolati i commenti dei tifosi.
Scraping da Wikipedia
Attraverso la libreria R reticulate, sono state estratte dalla pagina Wikipedia inerente i risultati del campionato 20203 le performance per ogni gara dei piloti Sebastian Vettel e Charles Leclerc. Nella Figura 1 si presentano i risultati della stagione:
Poiché i tweets necessari ai fini dell’analisi erano precedenti ai limiti temporali imposti dalle API di Twitter, è stato necessario utilizzare la libreria snscrape 4 5, disponibile solamente in ambiente Python 3.8, che permette il recupero di un numero illimitato di tweets. Dal momento in cui il tema in questione è molto sentito in Italia, si è deciso di svolgere lo studio su frasi in lingua italiana. Quindi, utilizzando i topic descritti in precedenza e le date di ogni Gran Premio, sono stati scaricati un massimo di 1’000 post per ciascuna coppia topic-gara, così da ottenere un corpus di 46’157 documenti. La distribuzione del numero di tweet per topic è rappresentata in Figura 2.
Figura 2: Distribuzione dei Topic
Preprocessing
Per ogni documento presente nel corpus, sono state svolte le operazioni di preprocessing necessarie per analizzare il testo. In particolare:
- Tokenization, ciascuna frase è stata tokenizzata in unigrammi;
- Punctuation, sono state rimossi caratteri di punteggiatura;
- Rimozione URL, ciascun collegamento ipertestuale è stato rimosso in quanto i link non sono significativi ai fini del nostro scopo.
- Rimozione Stopwords, alla lista di parole identificate come stopword nella libreria
nltkin lingua italiana, sono state aggiunti alcuni dei token più frequenti non significativi secondo la nostra opinione.
Non sono stati rimossi i caratteri numerici in quanto potrebbero essere utili ai fini dello studio nella fase di Sentiment Analysis supervisionata. Questo perché i numeri potrebbero far riferimento alle posizioni ottenute in gara e quindi avere un’accezione positiva o negativa.
Sentiment Analysis
Per calcolare il sentiment di ogni tweet sono stati utilizzati 3 approcci. I primi due approcci sono di tipo Lexicon-based, attraverso i vocabolari NRC e Sentyx 6, sui cui risultati è stato costruito un modello supervisionato.
Lexicon-Based
Non vi sono lessici specifici per Twitter per quanto riguarda la lingua italiana e solo NRC è implementato in una libreria R. L’output comprende due valori che indicano la positività e la negatività della frase. La differenza degli stessi è stata considerata come il sentiment del tweet. Sentyx, invece, consiste in un file di testo in cui ad ogni token è associato un valore per la direzione, positivo-negativo nel range [1, -1], e l’intensità (da 0 a 1). Per ottenere un valore univoco da associare alla parola in questione è stato considerato il prodotto tra questi due indicatori. In questo caso, il sentiment della frase è la somma delle parole che la compongono.
Supervised
Sulla base di quanto ottenuto dai risultati degli approcci Lexicon-Based, è stata ricavata una nuova misura che divide i tweets in negativi, positivi e neutrali secondo il seguente criterio:
- Negativi, se entrambi i valori precedenti erano negativi oppure uno negativo e l’altro uguale a 0;
- Positivi, se entrambi i valori precedenti erano positivi oppure uno positivo e l’altro uguale a 0;
- Neutrali, se entrambi erano uguali a 0 oppure con segni opposti.
Queste nuove etichette sono state utilizzate come classi da prevedere per un modello di classificazione. Dopo aver rappresentato il testo in uno spazio vettoriale di 500 elementi attraverso la tecnica del Bag of Words, queste features sono state utilizzate da una Support Vector Machine con l’intento di prevedere il sentiment. Di seguito il report di classificazione del modello utilizzato sulla partizione di test:
| Precision | Recall | F1-Score | |
|---|---|---|---|
| Negativo | 0.83 | 0.80 | 0.82 |
| Neutrale | 0.63 | 0.79 | 0.70 |
| Positivo | 0.79 | 0.74 | 0.76 |
| Accuracy | 0.78 |
Questo modello è stato successivamente utilizzato per prevedere il sentiment dei tweets per l’ultimo Gran Premio della stagione, che si è tenuto ad Abu Dhabi il 13 Dicembre 2020, dimostrando ancora una polarità principalmente negativa nonostante fosse un’occasione particolare, ossia l’ultima gara di Sebastian Vettel per la Scuderia.
Figura 3: Sentiment Abu Dhabi
Visualizzazioni in Tableau
I risultati ottenuti dai vari approcci sono stati riportati in Tableau per essere visualizzati. È emersa la correlazione negativa tra risultati e sentiment che ci si aspettava. Il sentiment NCR è abbastanza neutro ma diventa positivo al raggiungimento di ottimi risultati in pista. Invece, è negativo per gare andate particolarmente male, in cui non sono state raggiunte le posizioni necessarie per guadagnare punti o in cui i piloti hanno fatto degli incidenti, in particolare il 12 Luglio 2020 ed il 6 Dicembre 2020.
La seconda metrica invece mostra un sentiment negativo per tutto l’andamento della stagione, ad eccezione delle due gare in cui la scuderia ha ottenuto i risultati migliori, in particolare il 25 Ottobre 2020 ed il 15 Novembre 2020.
I due sentiment mostrano risultati abbastanza discordanti. Mentre la prima sembra specchio di un umore discretamente positivo, la seconda mostra uno scenario sconfortante. È invece chiaro come in entrambi gli approcci, il topic a cui sono associati la maggior parte dei commenti negativi sia Vettel, pilota reduce da una stagione deludente dal punto di vista delle prestazioni.
Infine, la Figura 6 mostra una Wordcloud raffigurante i termini più frequenti per i quali è possibile osservare la loro distribuzione nelle frasi negative, positive o neutrali.
Conclusioni
In merito alle domande di ricerca, si può affermare che:
- Esiste una correlazione tra i risultati ottenuti in pista e l’umore dei Tifosi? Esiste un leggero trend negativo lungo tutta la stagione ed una forte correlazione legata ai risultati in pista tra un Gran Premio e l’altro.
- Come sono percepiti i due piloti da parte della Community? E la scuderia in generale? Il preferito della Community è Charles Leclerc, mentre Sebastian Vettel ha avuto una stagione sottotono. La Scuderia Ferrari ha deluso le aspettative per quanto riguarda la costruzione della monoposto, ma durante la stagione non ha commesso grossi errori nelle strategie di gara, quindi ha portato ad un umore lievemente positivo.
- Quali sono i personaggi più influenti all’interno del panorama Ferrari su Twitter? Oltre agli account ufficiali della scuderia di Maranello, sono emersi alcuni utenti molto influenti che raggruppano una buona parte di pubblico (deadlinex e FormulaHumor).
- Quali strategie potrebbe adottare il Brand per migliorare la comunicazione online? Al di là del miglioramento dei risultati in pista, per la comunicazione sui Social si potrebbe pensare ad una collaborazione con i maggiori influencer del settore identificati nella domanda precedente. Questi personaggi, avendo un grande seguito ed essendo importanti nel circolo delle informazioni, potrebbero sicuramente influenzare l’opinione di molti altri utenti.
Riferimenti
Sito Ufficiale Ferrari F1: https://www.ferrari.com/it-IT/formula1↩︎
Twitter API: https://developer.twitter.com/en/apps↩︎
Wikipedia: https://it.wikipedia.org/wiki/Campionato_mondiale_di_Formula_1_2020↩︎
Scraping with
snscrape: https://github.com/MartinBeckUT/TwitterScraper/blob/master/snscrape/cli-with-python/snscrape-python-cli.ipynb↩︎Scraping with
snscrape: https://medium.com/better-programming/how-to-scrape-tweets-with-snscrape-90124ed006af↩︎Gephi Documentation : https://gephi.org/users/↩︎
Gephi : https://towardsdatascience.com/how-to-get-started-with-social-network-analysis-6d527685d374↩︎
Social Network Analysis
Il secondo task prevede la costruzione di una rete sociale della community costruita attraverso le menzioni all’interno dei tweets. Dei circa 50’000 tweet iniziali, 19’000 contenevano almeno una menzione. Sono state quindi ricreate tutte le coppie
menzionato-menzionante(tabella degli archi) e tutti gli utenti coinvolti (tabella dei nodi). Sono stati identificati 10’211 nodi e 30’899 archi, di cui 17’832 unici.La Social Network risultante ha le seguenti caratteristiche:
Si nota che il grafo è leggermente Disassortative, ciò implica che i grandi Hubs non tendono a legarsi tra di loro. In particolare, i tag avvengono maggiormente da utenti con grado basso, mentre gli hubs generalmente non hanno legami tra di loro, anche perchè, come nel caso di Charles Leclerc, non utilizzano Twitter per comunicare. È stato utilizzato il software Gephi 7 8 per rappresentare graficamente la rete sociale appena creata. Il layout utilizzato è Open Ord, utile per distinguere maggiormente i cluster e basato sull’algoritmo di Frutcherman-Reingolg.
Degree
Gli utenti con grado più alto sono:
Sorprende la presenza di utenti non legati direttamente al circuito di Formula 1, deadlinex e FormulaHumor, che creano molte interazioni sia in entrata che in uscita.
In Tabella 4 è possibile osservare che il grado generale è maggiormente legato alle menzioni rispetto che all’attività dell’utente sul Social Network.
Community Detection
Per la Community Detection è stato applicato l’algoritmo gerarchico di Louvain, che massimizza la modularità entro i gruppi. Questo significa massimizzare la densità di connessioni entro il cluster rispetto a quella verso l’esterno del cluster. Sono risultati 1’026 gruppi con una modularità di 0.673 e un numero medio di unità per cluster di circa 10 nodi. Osservando la distribuzione dei nodi nei gruppi, si nota che solamente un numero ridotto di cluster è popolato da un numero considerevole di unità, mentre molti gruppi sono composti da due soli utenti in quanto uno ha menzionato l’altro ed entrambi non hanno legami con altri Tifosi.
Di seguito si mostra la rappresentazione grafica della Community Detection, in cui sono state evidenziate le Community più popolose. La dimensione dei nodi è proporzionale al numero di menzioni (In-Degree) nei tweet, in quanto considerato come il fulcro della community:
Figura 7: Community Detection
Per le 5 community più numerose, si è proceduto ad un calcolo della sentiment media entro il cluster. In Tabella 6 si presentano i risultati:
Si osservano delle lieve differenze tra una community e l’altra. Ad esempio le pagine umoristiche presentano una polarità positiva, mentre sorprende la community relativa a Altri Piloti ed Ambiente F1 che è caratterizzata da una polarità molto elevata per la prima metrica di sentiment ed è invece particolarmente bassa per la seconda. Inoltre, i commenti dei giornalisti (community Sky Sport) sono tra i più neutrali in quanto cercano di descrivere in modo oggettivo quanto accaduto in pista.
Centrality Measures
Le unità con Closeness Centrality più elevata, ovvero quelle che sono mediamente meno distanti da tutte le altre, sono le seguenti:
Non sorprende la presenza di Charles Leclerc, in quanto è sicuramente vicino a tutti gli utenti della Community, così come Marc Gene, un personaggio di riferimento per i tifosi della scuderia di Maranello. Non appare, invece, Sebastian Vettel in quanto non possiede alcun account social ufficiale.
Le unità con Betweenness Centrality più elevata, ovvero quelle che appiano più spesso nello Shortest Path tra due unità, sono le seguenti:
Figura 8: Betweenness Centrality
Si osserva che sono presenti gli utenti con maggiore interazione sia per In Degree che per Out Degree, poiché avere molti archi in ingresso ed in uscita rende il nodo di passaggio.